package com.greate.community.mapper;

import com.greate.community.entity.UserTag;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface UserTagMapper {

    /**
     * 添加用户标签
     * @param userTag 用户标签对象
     * @return 影响的行数
     */
    int insertUserTag(UserTag userTag);

    /**
     * 更新用户标签权重
     * @param id 标签ID
     * @param weight 权重
     * @return 影响的行数
     */
    int updateWeight(int id, double weight);

    /**
     * 根据用户ID查询用户标签列表
     * @param userId 用户ID
     * @return 用户标签列表
     */
    List<UserTag> selectUserTagsByUserId(int userId);

    /**
     * 查询用户的热门标签（按权重排序）
     * @param userId 用户ID
     * @param limit 查询条数
     * @return 用户热门标签列表
     */
    List<UserTag> selectHotUserTags(int userId, int limit);

    /**
     * 根据标签名称查询用户标签
     * @param userId 用户ID
     * @param tagName 标签名称
     * @return 用户标签
     */
    UserTag selectUserTagByTagName(@Param("userId") int userId, @Param("tagName") String tagName);

    /**
     * 删除用户标签
     * @param id 标签ID
     * @return 影响的行数
     */
    int deleteUserTag(int id);
} 